// createStore 创建store的实例
// createLogger 引入内置的logger日志插件
import { createStore, createLogger } from 'vuex'
// vuex - persistedstate   会自动存到localStorage中
import createPersistedstate from 'vuex-persistedstate'

import user from './modules/user'
import cart from './modules/cart'
import category from './modules/category'

// 创建vuex仓库并导出
export default createStore({
  modules: {
    // 分模块
    user,
    cart,
    category
  },
  plugins: [
    createPersistedstate({
      key: 'erabbit-client-pc-store', // 存数据的key名   自定义的  要有语义化
      paths: ['user', 'cart'] // 要把那些模块加入缓存
      // 将vuex中的值存到sessionStorage中
      // storage: {
      //   getItem (key) { // 获取值
      //     return window.sessionStorage.getItem(key)
      //   },
      //   setItem (key, value) { // 设置值
      //     window.sessionStorage.setItem(key, value)
      //   },
      //   removeItem (key) { // 移除值
      //     window.sessionStorage.removeItem(key)
      //   }
      // }
    }),
    createLogger()
  ],
  getters: {
    token: (state) => state.user.profile.token,
    nickname: (state) => state.user.profile.nickname
  }
})
